सी मध्ये डेटा प्रकार

डेटा प्रकार व्हेरिएबल इंटिजर, फ्लोटिंग, कॅरेक्टर इ. सारख्या डेटाचा प्रकार निर्दिष्ट करतो.

मूलभूत डेटा प्रकार

मूलभूत डेटा प्रकार Integer-आधारित आणि फ्लोटिंग-पॉइंटवर आधारित आहेत. C भाषा दोन्ही साइन केलेले आणि अप्रतिबंधित लिटरल्सला समर्थन देते.

मूलभूत डेटा प्रकारांचा मेमरी आकार 32 किंवा 64-बिट ऑपरेटिंग सिस्टमनुसार बदलू शकतो.

चला मूलभूत डेटा प्रकार पाहूया. त्याचा आकार 32-बिट आर्किटेक्चरसाठी दिला आहे.

paunaZ:

पूर्णांक म्हणजे पूर्ण संख्या, ज्यात कोणतीही अंशीय किंवा दशांश भाग नसतात, आणि paunaZ डेटा प्रकार यांचे प्रतिनिधित्व करण्यासाठी वापरला जातो.

हे सहसा अशा चलांवर लागू केले जाते ज्यात गणना, निर्देशांक किंवा इतर संख्यात्मक संख्या यांसारखे मूल्य समाविष्ट असते. paunaZ डेटा प्रकार दोन्ही सकारात्मक आणि नकारात्मक संख्यांचे प्रतिनिधित्व करू शकतो कारण हे डीफॉल्टने साइन केलेले आहे.

अधिकांश उपकरणांवर, एक paunaZ 4 बाइट मेमोरी घेते, ज्यामुळे ते अंदाजे -2 अब्ज ते +2 अब्ज यामध्ये मूल्ये साठवू शकते.

चार:

व्यक्तिगत अक्षरे "Axar" डेटा प्रकाराने दर्शविलेली असतात. सामान्यतः याचा वापर ASCII किंवा UTF-8 कोडिंग स्कीममधील अक्षरे, संख्या, चिन्हे किंवा अल्पविराम धरण्यासाठी केला जातो. एकच "Axar" 256 अक्षरे दर्शवू शकतो, जे एका बाइट मेमरी घेतो. 'A', 'b', '5' किंवा '$' सारखी अक्षरे एकल उद्धरणात समाविष्ट केलेली असतात.

व्यक्तिगत अक्षरे "Axar" डेटा प्रकाराने दर्शविलेली असतात. सामान्यतः याचा वापर ASCII किंवा UTF-8 कोडिंग स्कीममधील अक्षरे, संख्या, चिन्हे किंवा अल्पविराम धरण्यासाठी केला जातो. एकच "Axar" 256 अक्षरे दर्शवू शकतो, जे एका बाइट मेमरी घेतो. 'A', 'b', '5' किंवा '$' सारखी अक्षरे एकल उद्धरणात समाविष्ट केलेली असतात.

पूर्णांक दर्शवण्यासाठी फ्लोटिंग डेटा प्रकार वापरा. फ्लोटिंग नंबरांचा उपयोग भिन्न युनिट्स किंवा दशांश स्थान असलेल्या संख्यांचे प्रतिनिधित्व करण्यासाठी केला जातो.

फ्लोट प्रकार सहसा त्यासाठी वापरला जातो जेव्हा भलेच चांगल्या अचूकतेची आवश्यकता असते, पण अचूकता फारच कमी असू शकते. हा 4 बाइट मेमरीमध्ये सुमारे 6 दशांश स्थाने आणि सुमारे 3.4 x 10^38 यांच्या श्रेणीत अचूकतेसह मूल्ये साठवू शकतो.

पूर्णांक दर्शवण्यासाठी फ्लोटिंग डेटा प्रकार वापरा. फ्लोटिंग नंबरांचा उपयोग भिन्न युनिट्स किंवा दशांश स्थान असलेल्या संख्यांचे प्रतिनिधित्व करण्यासाठी केला जातो.

फ्लोट प्रकार सहसा त्यासाठी वापरला जातो जेव्हा भलेच चांगल्या अचूकतेची आवश्यकता असते, पण अचूकता फारच कमी असू शकते. हा 4 बाइट मेमरीमध्ये सुमारे 6 दशांश स्थाने आणि सुमारे 3.4 x 10^38 यांच्या श्रेणीत अचूकतेसह मूल्ये साठवू शकतो.

फ्लोटिंग पूर्णांक दर्शवण्यासाठी दोन डेटा प्रकारांचा वापर करा. जेव्हा अधिक अचूकतेची आवश्यकता असते, जसे की शास्त्रीय गणनांमध्ये किंवा आर्थिक अनुप्रयोगांमध्ये, ते फ्लोटच्या तुलनेत अधिक अचूकता प्रदान करते.

डबल प्रकार, जो 8 बाइट मेमरी वापरतो आणि त्याची अचूकता सुमारे 15 दशमलव स्थानांची आहे, मोठे मूल्य देते. जर स्पष्ट प्रकार दिला नसेल तर C फ्लोटिंग पॉइंट नंबरांना डीफॉल्टने डबल म्हणून मानतो.

paunaZ vaya = 25;
Axar gazed = 'A';
ApaunaZ taapamaana = 98.6;
AMk paiAaya = 3.14159265359;

उपरोक्त उदाहरणात, आम्ही चार व्हेरिएबल घोषित केली आहेत: व्यक्तीच्या वयासाठी एक paunaZ व्हेरिएबल, विद्यार्थ्याच्या ग्रेडसाठी एक Axar व्हेरिएबल, तापमान अहवालासाठी एक ApaunaZ व्हेरिएबल, आणि π च्या संख्येसाठी दोन व्हेरिएबल.

व्युत्पन्न डेटा प्रकार

मूलभूत डेटा प्रकारांसोबत, C Derived data types म्हणजेच व्युत्पन्न डेटा प्रकारांना देखील सपोर्ट करतो, ज्यामध्ये अरे, पॉइंटर, संरचना आणि युनियन समाविष्ट आहेत. हे डेटा प्रकार प्रोग्रामर्सना विविध प्रकारचा डेटा हाताळण्याची, मेमोरी थेट संपादित करण्याची आणि कठीण डेटा संरचना तयार करण्याची क्षमता देतात.

अ‍ॅरे:

एक अँरे, जो एक व्युत्पन्न डेटा प्रकार आहे, तुम्हाला समान प्रकारच्या निश्चित आकाराच्या तत्त्वांचा अनुक्रम संग्रहित करण्याची परवानगी देतो. हे समान नावाखाली समान डेटा असलेल्या अनेक लक्ष्यांना एकत्र करण्याचा एक मार्ग प्रदान करते.

अँरेतील तत्त्वांना प्रवेश करण्यासाठी निर्देशांक वापरला जातो, जिथे पहिल्या नोंदसाठी 0 निर्देशांक असतो. अँरेचा आकार घोषणाच्या वेळी निश्चित केलेला असतो आणि प्रोग्राम चालवताना बदलता येत नाही. अँरेतील घटक एकमेकांच्या जवळच्या मेमरी क्षेत्रांमध्ये ठेवले जातात.

अँरे घोषित करण्याचा आणि त्याचा उपयोग करण्याचा एक उदाहरण:

उदाहरण

#vaapara <PsaTidiAayaAae.Pca>

paunaZ mauqya() {
paunaZ saMqyaa[5]; // oaaeSaitaRkrtae Pk paunaZaMk AWre sah A Aakar cyaa 5 oaTk

// naiyauKta maulyae Tu D AWre oaTk
saMqyaa[0] = 10;
saMqyaa[1] = 20;
saMqyaa[2] = 30;
saMqyaa[3] = 40;
saMqyaa[4] = 50;

// pzaDSaZna D maulyae saMgazhita maoyae D AWre
laiha("maulyae maoyae D AWre: ");
jaeMvh (paunaZ mai = 0; mai < 5; mai++) {
laiha("%paunaZ ", saMqyaa[mai]);
}
laiha("\n");

vaapasakra 0;
}

आउटपुट

maulyae maoyae D AWre: 10 20 30 40 50

पॉईंटर:

एक पोईंटर हा एक व्युत्पन्न डेटा प्रकार आहे जो दुसऱ्या डेटा प्रकाराच्या मेमरी पत्त्यावर लक्ष ठेवतो. जेव्हा एक पोईंटर घोषित केला जातो, तेव्हा तो ज्या डेटा प्रकाराला संबद्ध आहे तो डेटा प्रकार प्रथम सांगितला जातो, आणि नंतर त्या चलाच्या नावाच्या आधी एक तारा (*) ठेवला जातो.

तुम्ही पोईंटर वापरून चलाचा मेमरी पत्ता निर्दिष्ट करून चुकीच्या पद्धतीने प्रवेश करू शकता आणि चलाची किंमत बदलू शकता. पोईंटर सामान्यतः फंक्शन पोईंटर्स, डेटा संरचना, आणि डायनॅमिक मेमरी आवंटन सारख्या कामांमध्ये वापरले जातात.

इथे एक पोईंटर घोषित करण्याचे आणि त्याचा वापर कसा करायचा याचे उदाहरण आहे:

उदाहरण

#vaapara <PsaTidiAayaAae.Pca>

paunaZ mauqya() {
paunaZ saMqyaa = 42; // Pk paunaZaMk cala
paunaZ *paiTiAar; // oaaeSaitaRkrtae A paEZMTr Tu Pk paunaZaMk

paiTiAar = # // AsaaEnaRkrtaae D paaa cyaa 'saMqyaa' Tu D paEZMTr

// pzavaeSa D maulya cyaa 'saMqyaa' vaaparta D paEZMTr
laiha("maulya cyaa saMqyaa: %paunaZ\n", *paiTiAar);

vaapasakra 0;
}

आउटपुट

maulya cyaa saMqyaa: 42

रचना:

संरचना म्हणजे एक व्युत्पन्न डेटा प्रकार जो अनेक डेटा प्रकारांना एका नावामध्ये गटित करून संपूर्ण डेटा प्रकार तयार करण्याची परवानगी देतो. हे तुम्हाला विविध प्रकारच्या चलांचा एकत्र करून तुमचे स्वतःचे अनोखे डेटा संरचना तयार करण्याची क्षमता देते.

संरचनेतील सदस्य किंवा क्षेत्रे प्रत्येक चलाला संदर्भित करण्यासाठी वापरले जातात.
कोणतीही डेटा प्रकार, विविध संरचना देखील, संरचनेचा सदस्य असू शकतो.
संरचनेच्या सदस्यांपर्यंत पोहचण्यासाठी डॉट (.) ऑपरेटरचा वापर केला जातो.
संरचनेची घोषणा व वापर येथे दर्शविला आहे:

उदाहरण

#vaapara <PsaTidiAayaAae.Pca>
#vaapara <SabD.Pca>
// pariBaaSaitaRkra A rcanaa pzatainaioaitvaRkritaRAahe A vyaKtai
rcanaa vyaKtai {
Axar naava[50];
paunaZ vaya;
ApaunaZ UMcai;
};

paunaZ mauqya() {
// oaaeSaitaRkra A cala cyaa pzakar rcanaa vyaKtai
rcanaa vyaKtai vyaKtaiR1;

// naiyauKta maulyae Tu D rcanaa saDsya
SabD_paztailaipai(vyaKtaiR1.naava, "jana dae");
vyaKtaiR1.vaya = 30;
vyaKtaiR1.UMcai = 1.8;

// pzavaeSa D rcanaa saDsya
laiha("naava: %SabD\n", vyaKtaiR1.naava);
laiha("vaya: %paunaZ\n", vyaKtaiR1.vaya);
laiha("UMcai: %.2 Ppaf\n", vyaKtaiR1.UMcai);

vaapasakra 0;
}

आउटपुट

naava: jana dae
vaya: 30
UMcai: 1.80

युनियन:

युनियन नावाचा एक व्युत्पन्न डेटा प्रकार आपल्याला समान मेमरी पत्त्यात विविध डेटा प्रकार संचयित करण्यास सक्षम करते. स्ट्रक्चर्सच्या उलट, जेथे प्रत्येक सदस्याकडे स्वतंत्र मेमरी स्पेस असते, युनियनचे सदस्य सर्व एकल मेमरी स्पेस सामायिक करतात. कोणत्याही क्षणी केवळ युनियनच्या एका सदस्याद्वारे मूल्य असू शकते. जेव्हा आपल्याला बर्‍याच डेटा प्रकारांचे परस्पर बदल करण्याची आवश्यकता असते, तेव्हा युनियन उपयोगी पडतात. स्ट्रक्चर्स प्रमाणे, आपण डॉट (.) ऑपरेटरचा वापर करून युनियनच्या सदस्यांमध्ये प्रवेश करू शकता. युनियन घोषित आणि वापरल्या जाण्याचे एक उदाहरण येथे आहेः

उदाहरण

#vaapara <PsaTidiAayaAae.Pca>
// pariBaaSaitaRkra A yaunaiyana pzatainaioaitvaRkritaRAahe A saMqyaatmak maulya
yaunaiyana saMqyaatmakRmaulya {
paunaZ EMTWlyau;
ApaunaZ laaeTvhWlyau;
Axar sTiMgavhWlyau[20];
};
paunaZ mauqya() {
// oaaeSaitaRkra A cala cyaa pzakar yaunaiyana saMqyaatmakRmaulya
yaunaiyana saMqyaatmakRmaulya maulya;
// naiyauKta A maulya Tu D yaunaiyana
maulya.EMTWlyau = 42;
// pzavaeSa D yaunaiyana saDsya
laiha("paunaZaMk maulya: %paunaZ\n", maulya.EMTWlyau);
// naiyauKta A Bainna maulya Tu D yaunaiyana
maulya.laaeTvhWlyau = 3.14;
// pzavaeSa D yaunaiyana saDsya
laiha("laaeT maulya: %.2 Ppaf\n", maulya.laaeTvhWlyau);

vaapasakra 0;
}

आउटपुट

paunaZaMk maulya: 42
laaeT maulya: 3.14

गणना डेटा प्रकार

कनेक्ट केलेल्या मूल्यांच्या संग्रहाचे प्रतिनिधित्व करणारे नामित स्थिरांक किंवा गणितांचा एक संच गणना डेटा प्रकार (एनम) वापरून सी मध्ये परिभाषित केला जाऊ शकतो. गणने आपल्याला अविभाज्य मूल्यांच्या गटाला अर्थपूर्ण नावे देण्याचे साधन देतात, ज्यामुळे आपला कोड वाचणे आणि देखभाल करणे सुलभ होते.

उदाहरण

#vaapara <PsaTidiAayaAae.Pca>

// pariBaaSaitaRkra Pk gananaa jaeMvh Divasa cyaa D AaVvada
saucai KMlaevaiumamaa {
saaemavaar,
maMgaQvaar,
bauoavaar,
gaurfvaar,
Saukzvaar,
Sanaivaar,
rvaivaari
};

paunaZ mauqya() {
// oaaeSaitaRkra A cala cyaa pzakar saucai KMlaevaiumamaa
saucai KMlaevaiumamaa Aaja;

// naiyauKta A maulya paasauna D gananaa
Aaja = bauoavaar;

// pzavaeSa D gananaa maulya
laiha("Aaja Aahe %paunaZ\n", Aaja);

vaapasakra 0;
}

आउटपुट

Aaja Aahe 2

शून्य डेटा प्रकार

सी भाषेतील शून्य डेटा प्रकार विशिष्ट प्रकारच्या अभाव दर्शविण्यासाठी केला जातो. फंक्शन रिटर्न प्रकार, फंक्शन पॅरामीटर्स आणि पॉईंटर्स ही तीन परिस्थिती आहेत जिथे त्याचा वारंवार वापर केला जातो.

फंक्शन रिटर्न प्रकार:

एक शून्य रिटर्न प्रकार फंक्शन मूल्य तयार करत नाही. एक शून्य कार्य कार्य किंवा कृती कार्यान्वित करते आणि मूल्य परत करण्याऐवजी समाप्त होते.

उदाहरण

qaalai pzaiMTelaae() { laiha("hWlaae, jaga!\n"); }

फंक्शन पॅरामीटर्स:

फंक्शन कोणतेही युक्तिवाद स्वीकारत नाही हे दर्शविण्यासाठी पॅरामीटर शून्य वापरले जाऊ शकते.

उदाहरण

qaalai pzaaesaesaREnapauT(qaalai) { /* kayaZ takZSaasOa */ }

पॉईंटर्स:

कोणताही पत्ता शून्य प्रकाराच्या पॉईंटरमध्ये संग्रहित केला जाऊ शकतो, ज्यामुळे तो सार्वत्रिक पॉईंटर बनतो. हे अस्पष्ट किंवा एटिपिकल प्रकारांकरिता पॉईंटर्ससह कार्य करण्याची एक पद्धत ऑफर करते.

उदाहरण

qaalai* kMjaMcajata;

शून्य डेटा प्रकार जेनेरिक पॉईंटर्ससह कार्य करताना कोणतेही वितर्क स्वीकारत नाहीत किंवा जेव्हा आपण फंक्शन मूल्य परत करत नाही असे संकेत देऊ इच्छित असाल तर फंक्शन्स परिभाषित करण्यासाठी उपयुक्त आहे. हे लक्षात घेणे महत्त्वपूर्ण आहे की शून्य* वापरल्यास जेनेरिक पॉईंटर्स तयार करण्यासाठी वापरले जाऊ शकते, परंतु शून्य स्वतःच व्हेरिएबल प्रकार म्हणून घोषित केले जाऊ शकत नाही.

उदाहरण

#vaapara <PsaTidiAayaAae.Pca>
// kayaZ sah qaalai vaapasakra pzakar
qaalai pzaiMTelaae() {
laiha("hWlaae, jaga!\n");
}
// kayaZ sah qaalai paWramaiTr
qaalai pzaaesaesaREnapauT(qaalai) {
laiha("pzakziyaa EnapauT...\n");
}

paunaZ mauqya() {
// klaiMga A qaalai kayaZ
pzaiMTelaae();

// klaiMga A kayaZ sah qaalai paWramaiTr
pzaaesaesaREnapauT();

// vaaparta A qaalai paEZMTr
paunaZ kzmaaMk = 10;
qaalai* kMjaMcajata = &kzmaaMk;
laiha("maulya cyaa kzmaaMk: %paunaZ\n", *(paunaZ*)kMjaMcajata);

vaapasakra 0;
}

आउटपुट

hWlaae, jaga!
pzakziyaa EnapauT...
maulya cyaa kzmaaMk: 10

निष्कर्ष:

परिणामी, सी प्रोग्रामिंग भाषेमध्ये डेटा प्रकार आवश्यक आहेत कारण ते व्हेरिएबल्स ठेवू शकतील अशा प्रकारच्या माहितीची व्याख्या करतात. ते डेटाचे आकार आणि स्वरूप प्रदान करतात, कंपाईलरला मेमरीला वाटप करण्यास आणि आवश्यक कृती पार पाडण्यास सक्षम करतात. सी द्वारा समर्थित डेटा प्रकारांमध्ये शून्य, गणना, व्युत्पन्न आणि मूलभूत प्रकार समाविष्ट आहेत. फ्लोट आणि डबल सारख्या फ्लोटिंग-पॉईंट प्रकारांव्यतिरिक्त, सी मधील मूलभूत डेटा प्रकारांमध्ये इंट, चार आणि शॉर्ट सारख्या पूर्णांक-आधारित प्रकारांचा समावेश आहे. या फॉर्मवर स्वाक्षरी केली जाऊ शकते किंवा स्वाक्षरी केली जाऊ शकते आणि ते आकार आणि श्रेणीमध्ये चढउतार होतात. विश्वासार्ह आणि कार्यक्षम कोड तयार करण्यासाठी, या प्रकारच्या मेमरी आकार आणि व्याप्ती समजून घेणे महत्त्वपूर्ण आहे. व्युत्पन्न डेटा प्रकारांची काही उदाहरणे म्हणजे युनियन, पॉईंटर्स, स्ट्रक्चर्स आणि अ‍ॅरे. अ‍ॅरेमुळे समान प्रकारचे अनेक घटक एकत्रित मेमरीमध्ये एकत्रित केले जाऊ शकतात. पॉईंटर्स वेगवान डेटा स्ट्रक्चर ऑपरेशन्स आणि डायनॅमिक मेमरी वाटपास अनुमती देतात, मेमरी पत्त्यांचा मागोवा ठेवतात. युनियन असंख्य व्हेरिएबल्सला समान मेमरी स्पेस सामायिक करण्यास अनुमती देतात, तर रचनांनी संबंधित व्हेरिएबल्स एकत्रितपणे गट तयार करतात. गणित डेटा प्रकारांचा वापर करून नावे निश्चित केल्या जातात तेव्हा कोड अधिक सुवाच्य आणि देखभाल करण्यायोग्य बनतो. संबंधित डेटाचे अर्थपूर्ण प्रतिनिधित्व सक्षम करण्यासाठी गणिते नामित स्थिरांक पूर्णांक मूल्ये देतात. शून्य डेटा प्रकार विशिष्ट प्रकारच्या अभाव दर्शवते. हे दोन्ही फंक्शन्स आणि फंक्शन पॅरामीटर्ससाठी रिटर्न प्रकार म्हणून वापरले जाते जे कोणतेही युक्तिवाद घेत नाहीत आणि मूल्य परत करत नाहीत. शून्य* पॉईंटर सामान्य पॉईंटर म्हणून देखील कार्य करते जे विविध प्रकारचे पत्ते संचयित करू शकते. सी प्रोग्रामिंगला डेटा प्रकारांची ठोस समज आवश्यक आहे. प्रोग्रामर पुरेसे मेमरी वाटप सुनिश्चित करू शकतात, डेटा ओव्हरफ्लो किंवा काटेकोरपणे टाळतात आणि योग्य डेटा प्रकार निवडून त्यांच्या कोडची वाचनीयता आणि देखभाल वाढवू शकतात. सी प्रोग्रामर प्रभावी, विश्वासार्ह आणि सुसज्ज कोड तयार करू शकतात जे डेटा प्रकारांची दृढ समज घेऊन त्यांच्या अनुप्रयोगांच्या आवश्यकता पूर्ण करतात.

◀ मागील पुढील ▶